﻿using System.Collections.Generic;
namespace eventr.Model
{
    public partial class AssetResult : System.ComponentModel.INotifyPropertyChanged
    {

        private string AssetTypeField;

        private int IdField;

        private string LastModifiedField;

        private System.Collections.Generic.List<eventr.Model.AssetPropertyValue> PropertiesField;

        private string TitleField;

        private string UrlField;

        private string VideoUrlField;

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string AssetType
        {
            get
            {
                return this.AssetTypeField;
            }
            set
            {
                if ((object.ReferenceEquals(this.AssetTypeField, value) != true))
                {
                    this.AssetTypeField = value;
                    this.RaisePropertyChanged("AssetType");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Id
        {
            get
            {
                return this.IdField;
            }
            set
            {
                if ((this.IdField.Equals(value) != true))
                {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string LastModified
        {
            get
            {
                return this.LastModifiedField;
            }
            set
            {
                if ((object.ReferenceEquals(this.LastModifiedField, value) != true))
                {
                    this.LastModifiedField = value;
                    this.RaisePropertyChanged("LastModified");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.List<eventr.Model.AssetPropertyValue> Properties
        {
            get
            {
                return this.PropertiesField;
            }
            set
            {
                if ((object.ReferenceEquals(this.PropertiesField, value) != true))
                {
                    this.PropertiesField = value;
                    this.RaisePropertyChanged("Properties");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Title
        {
            get
            {
                return this.TitleField;
            }
            set
            {
                if ((object.ReferenceEquals(this.TitleField, value) != true))
                {
                    this.TitleField = value;
                    this.RaisePropertyChanged("Title");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Url
        {
            get
            {
                return this.UrlField;
            }
            set
            {
                if ((object.ReferenceEquals(this.UrlField, value) != true))
                {
                    this.UrlField = value;
                    this.RaisePropertyChanged("Url");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string VideoUrl
        {
            get
            {
                return this.VideoUrlField;
            }
            set
            {
                if ((object.ReferenceEquals(this.VideoUrlField, value) != true))
                {
                    this.VideoUrlField = value;
                    this.RaisePropertyChanged("VideoUrl");
                }
            }
        }

        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null))
            {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }

    public partial class RefinementGroup : System.ComponentModel.INotifyPropertyChanged
    {

        private string NameField;

        private System.Collections.Generic.List<eventr.Model.RefinementValue> RefinementValuesField;

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Name
        {
            get
            {
                return this.NameField;
            }
            set
            {
                if ((object.ReferenceEquals(this.NameField, value) != true))
                {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }

        private string DisplayNameField;

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string DisplayName
        {
            get
            {
                return this.DisplayNameField;
            }
            set
            {
                if ((object.ReferenceEquals(this.DisplayNameField, value) != true))
                {
                    this.DisplayNameField = value;
                    this.RaisePropertyChanged("DisplayName");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.List<eventr.Model.RefinementValue> RefinementValues
        {
            get
            {
                return this.RefinementValuesField;
            }
            set
            {
                if ((object.ReferenceEquals(this.RefinementValuesField, value) != true))
                {
                    this.RefinementValuesField = value;
                    this.RaisePropertyChanged("RefinementValues");
                }
            }
        }

        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null))
            {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }

    public partial class AssetPropertyValue : System.ComponentModel.INotifyPropertyChanged
    {

        private string NameField;

        private string ValueField;

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Name
        {
            get
            {
                return this.NameField;
            }
            set
            {
                if ((object.ReferenceEquals(this.NameField, value) != true))
                {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Value
        {
            get
            {
                return this.ValueField;
            }
            set
            {
                if ((object.ReferenceEquals(this.ValueField, value) != true))
                {
                    this.ValueField = value;
                    this.RaisePropertyChanged("Value");
                }
            }
        }

        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null))
            {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }

    public partial class RefinementValue : System.ComponentModel.INotifyPropertyChanged
    {

        private string GroupField;

        private string DisplayGroupField;

        private string TokenField;

        private string ValueField;

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Group
        {
            get
            {
                return this.GroupField;
            }
            set
            {
                if ((object.ReferenceEquals(this.GroupField, value) != true))
                {
                    this.GroupField = value;
                    this.RaisePropertyChanged("Group");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string DisplayGroup
        {
            get
            {
                return this.DisplayGroupField;
            }
            set
            {
                if ((object.ReferenceEquals(this.DisplayGroupField, value) != true))
                {
                    this.DisplayGroupField = value;
                    this.RaisePropertyChanged("DisplayGroup");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Token
        {
            get
            {
                return this.TokenField;
            }
            set
            {
                if ((object.ReferenceEquals(this.TokenField, value) != true))
                {
                    this.TokenField = value;
                    this.RaisePropertyChanged("Token");
                }
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Value
        {
            get
            {
                return this.ValueField;
            }
            set
            {
                if ((object.ReferenceEquals(this.ValueField, value) != true))
                {
                    this.ValueField = value;
                    this.RaisePropertyChanged("Value");
                }
            }
        }

        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null))
            {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
}
